// Copyright 叶湘 ( weixin:yexiang841, email:yexiang841@qq.com ), Shitouren Studio. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/SpectatorPawn.h"
#include "PawnState/Q3D_CPPI_PawnState.h"
#include "PawnState/Q3D_CPPC_PawnState.h"
#include "Q3D_CPPA_SpectatorPawn.generated.h"

/**
 * 
 */
UCLASS(Blueprintable, ClassGroup = (Q3D), meta = (Tooltip = "Q3D_SpectatorPawn 基类(C++)"))
class Q3D_LIB_API AQ3D_CPPA_SpectatorPawn : public ASpectatorPawn, public IQ3D_CPPI_PawnState
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Q3D_SpectatorPawn, meta = (Tooltip = "为 Pawn/PawnState 指定 Player 序号", ExposeOnSpawn = "true"))
	int32 Int_PlayerIndex;

	UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Q3D_Pawn, meta = (Tooltip = "PawnState 管理器"))
	UQ3D_CPPC_PawnState *Ptr_C_PawnState;

public:
	virtual void Q3D_IF_PlayerIndex_Get_Implementation(int32 &int_player_index) const override;

	virtual void Q3D_IF_PawnState_Get_Implementation(UQ3D_CPPU_PawnState *&ptr_u_pawn_state) const;
};
